(function() {
    angular.module('BlurAdmin.pages.redAdminM')
        .controller('newRedCtrl', newRedCtrl);

    function newRedCtrl($scope, $qupload, $datepicker, $address, $filter, $mydialog, $http, $myconfig, $log) {
        //日期插件

        $scope.format = "yyyy/MM/dd";
        $scope.altInputFormats = ['yyyy-MM-dd-HH'];
        $scope.altInputFormats2 = ['yyyy-MM-dd'];

        $scope.dat = {
            dat1: $datepicker.dataNew(),
            dat2: $datepicker.dataNew(),
            dat3: $datepicker.dataNew(),
            dat4: $datepicker.dataNew(),
        };
        $scope.dat.dat3.date_ = "";
        $scope.dat.dat4.date_ = "";
        $scope.dat.dat1.date_ = "";
        $scope.dat.dat2.date_ = ""
        console.log($scope.dat.dat2.date_);

        $scope.red_data = {
            "name": "", //活动名称
            "amount": 0, //活动金额
            "number": 0, //红包数量
            "posters": "", //红包宣传
            "mainpic": "", //红包主图
            "starttime": $scope.dat.dat1.date_, //红包开始时间
            "endtime": $scope.dat.dat2.date_, //红包结束时间
            "birthdaystart": $scope.dat.dat3.date_, //限定条件中的出生日期的开始时间
            "birthdayend": $scope.dat.dat4.date_, //限定条件中的出生日期的结束时间
            "area": $scope.region_data, //限定条件中的地区
            "description": "", //红包简介
            "sex": '3' //限定条件中的性别
        };
        //图片加载进度条
        $scope.mystyle = {
            posters: {
                "width": '0%'
            },
            mainpic: {
                "width": '0%'
            }
        }

        //添加地区
        $scope.region_data = [];
        $scope.is_region_data = false;
        $scope.add_region = function() {
            var opt = $scope.regionData;
            var o1 = $scope.selectedProvince,
                o2 = $scope.selectedCity,
                o3 = $scope.selectedDstrict;
            console.log(opt[o1]);
            if ($scope.selectedProvince) {

                var o1_data = opt[o1],
                    o1_text = "";
                var o2_data = opt[o2],
                    o2_text = "";
                var region = opt[0][(parseInt(o1) - 1)][1]; //生成省级级字段
                if (o2) {
                    for (var j = 0; j < o1_data.length; j++) { //拼接市级字段
                        if (o1_data[j][0] == o2) {
                            o1_text = o1_data[j][1];
                            region += "-" + o1_text;
                        }
                    }
                }

                if (o3) {
                    for (var n = 0; n < o2_data.length; n++) { //拼接县级字段
                        if (o2_data[n][0] == o3) {
                            o2_text = o2_data[n][1];
                            region += "-" + o2_text;
                        }
                    }
                }

                var out_text = [];
                var region_text = region.split("-");
                console.log(region_text);

                for (var i = 0; i < $scope.region_data.length; i++) {
                    if ($scope.region_data[i] == region) { //判断是否有相同的字段，如有清空字段，防止重复添加
                        return region = '';
                    }
                    //判断是否选择了父级区域，如果已经包含则提示
                    out_text = $scope.region_data[i] ? $scope.region_data[i].split("-") : [];
                    for (var j = 0; j < out_text.length; j++) {
                        if (region_text[j] == out_text[j] && (!out_text[j + 1] || !region_text[j + 1])) {
                            var t1 = !out_text[j + 1] ? $scope.region_data[i] : region;
                            var t2 = !region_text[j + 1] ? $scope.region_data[i] : region;
                            var text = '所选“' + t1 + '”已经包含“' + t2 + '”请修改正确的区域';
                            return $mydialog.fail(text, 3500);
                        }
                    }
                }
                if (region) { //判断是否有值，有值则添加，无值判断为重复添加（已经循环清空了）
                    $scope.is_region_data = true;
                    $scope.region_data.push(region)
                } else {
                    alert('请勿重复添加');
                }
            } else { //初次判断是否有值，无值提示选择区域
                alert('请选择区域');
            }
        }

        //删除区域
        $scope.region_deleta = function(val) {
            $scope.region_data.splice(val, 1);
            if ($scope.region_data.length == 0) {
                $scope.is_region_data = false;
            }
        };
        //删除图片（不会删除七牛里的图）
        $scope.img_delete = function(val) { //红包宣传图 1 ，红包主图为2 
            val == 1 ? ($scope.red_data.posters = null) : ($scope.red_data.mainpic = null);
        }

        //地区管理
        $scope.$watch('selectedProvince', function(newValue, oldValue) {
            console.log(newValue, oldValue);
            $scope.regionData2 = $scope.regionData[newValue];
        });

        $scope.$watch('selectedCity', function(newValue, oldValue) {
            $scope.regionData3 = $scope.regionData[newValue];
        });

        $scope.districtObj = {};

        $scope.regionData = $address;

        $scope.regionData1 = $scope.regionData['0'];

        console.log($scope.regionData1);

        //提交
        var is_wancheng = true;
        $scope.Submit = function() {
            if (is_wancheng) {
                Testing(); //检测条件是否满足
            }
        }

        function Testing() { //检测条件是否满足
            var dd = new Date(); //初始当前日期
            var dds = parseInt(Date.parse(dd));
            var opt = $scope.red_data;
            opt.starttime = $scope.dat.dat1.date_, //红包开始时间
                opt.endtime = $scope.dat.dat2.date_, //红包结束时间
                opt.birthdaystart = $scope.dat.dat3.date_, //限定条件中的出生日期的开始时间
                opt.birthdayend = $scope.dat.dat4.date_; //限定条件中的出生日期的结束时间

            if (!opt.name) {
                return $mydialog.fail('请添加活动名称');
            }
            console.log(Date(opt.starttime));

            if (!(opt.starttime instanceof Date)) {
                return $mydialog.fail('请设置正确的红包开始时间');
            }
            if (!(opt.endtime instanceof Date)) {
                return $mydialog.fail('请设置正确的红包结束时间');
            }
            //判断开始时间是否小于结束时间
            var red_t1 = Date.parse(opt.starttime),
                red_t2 = Date.parse(opt.endtime);
            if (red_t1 >= red_t2) {
                return $mydialog.fail('红包活动开始时间应小于结束时间');
            }

            if (!opt.amount || isNaN(opt.amount) || (opt.amount * 100 < 1)) {
                return $mydialog.fail('请设置正确的金额');
            }
            if (!opt.number || !(parseInt(opt.number) == opt.number || opt.number <= 0)) {
                return $mydialog.fail('请设置正确的红包数量');
            }
            if (!opt.description) {
                return $mydialog.fail('请设置活动描述');
            }

            if (!opt.posters) {
                return $mydialog.fail('请设置红包宣传图');
            }
            if (!opt.mainpic) {
                return $mydialog.fail('请设置红包主图');
            }
            if (opt.birthdaystart && !(opt.birthdaystart instanceof Date)) {
                return $mydialog.fail('请设置正确的出生日期开始时间');
            }
            if (opt.birthdayend && !(opt.birthdayend instanceof Date)) {
                return $mydialog.fail('请设置正确的出生日期结束时间');
            }

            //日期判断提示
            var optdd1 = parseInt(opt.birthdaystart ? Date.parse(opt.birthdaystart) : 0), //初始开始日期
                optdd2 = parseInt(opt.birthdayend ? Date.parse(opt.birthdayend) : 0); //初始结束日期
            //判断设置生日时间不能大于当天日期
            if (opt.birthdaystart && (dds < optdd1)) {
                return $mydialog.fail('出生日期开始时间不能大于当前日期', 2500);
            }
            if (opt.birthdayend && (dds < optdd2)) {
                return $mydialog.fail('出生日期结束时间不能大于当前日期', 2500);
            }
            if(opt.birthdaystart&&!opt.birthdayend){
                  return $mydialog.fail('请设置出生日期结束时间', 2500);
            }
            if(!opt.birthdaystart&&opt.birthdayend){
                  return $mydialog.fail('请设置出生日期开始时间', 2500);
            }
            //既有开始日期，又有结束日期，判断开始日期小于结束日期
            if (opt.birthdayend && opt.birthdaystart && (optdd1 >= optdd2)) {
                return $mydialog.fail('出生开始时间应小于出生结束时间', 2500);
            }

            opt.area = $scope.region_data;
            SendOut(); //新增红包
        }

        var isAdd = false;
        function SendOut() { //发送新增
            if(isAdd){
                return $mydialog.fail('请等待...', 2500);
            }
            isAdd = true;
            var opt = $scope.red_data;
            opt.starttime = $scope.dat.dat1.date_, //红包开始时间
                opt.endtime = $scope.dat.dat2.date_, //红包结束时间
                opt.birthdaystart = $scope.dat.dat3.date_, //限定条件中的出生日期的开始时间
                opt.birthdayend = $scope.dat.dat4.date_, //限定条件中的出生日期的结束时间
                opt.area = $scope.region_data;
            var url = $myconfig.api.redpacket_add_redpacket;
            var o = JSON.stringify(opt);
            var otp = JSON.parse(o);
            otp.amount = otp.amount * 100;
            is_wancheng = false; //防止重复提交
            $http.post(url, otp).then(function(res) {
                isAdd = false;
                if (res.data.success) {
                    $scope.search_data();
                    $scope.myopen.opt_close();
                    $mydialog.success('添加成功');
                }else {
                    $mydialog.success('添加失败');
                }
            });

        }
        // 获取七牛touken
        function qi_t() {
            var is_img_qu = true;
            $http.get($myconfig.api.QiNiu_token).then(function(res) {
                console.log(res);
                $scope.qi_token_mun = res.data.token;
                $scope.qi_key = res.data.key;
            })
        };
        qi_t()
            //七牛图片上传
        var is_img_qu = true;
        $scope.selectFiles = [];
        $scope.context_img_fn = function(val) { //红包宣传图 1 ，红包主图为2 
            if (is_img_qu) {
                $scope.context_img = val;
            }
        };
        var start = function(index) {
            $scope.selectFiles[index].progress = {
                p: 0
            };
            $scope.selectFiles[index].upload = $qupload.upload({
                key: $scope.qi_key,
                file: $scope.selectFiles[index].file,
                token: $scope.qi_token_mun
            });
            $scope.selectFiles[index].upload.then(function(response) {
                // upload success
                $log.info(response);
                var url = $myconfig.api.Qiniu_url + response.key;
                console.log(url);
                //判断是上传商品图片 还是详情页的图片
                if ($scope.context_img == 1) { //红包宣传图
                    $scope.red_data.posters = url;
                    // $('#summernote').summernote('insertImage', url)
                } else if ($scope.context_img == 2) { //红包主图
                    $scope.red_data.mainpic = url;
                    // $scope.img_data.push(url); //成功后将图片链接放入数组中
                };
                qi_t();

            }, function(response) {
                // upload failure
                $log.info(response);
            }, function(evt) {
                // progress
                //evt.totalSize文件大小
                // evt.loaded已上传多少
                var mum = Math.floor(100 * evt.loaded / evt.totalSize);
                $scope.context_img == 1 ? ($scope.mystyle.posters.width = mum + '%') : ($scope.mystyle.mainpic.width = mum + '%');
                $scope.selectFiles[index].progress.p = Math.floor(100 * evt.loaded / evt.totalSize);


            });
        };

        $scope.abort = function(index) {
            $scope.selectFiles[index].upload.abort();
            $scope.selectFiles.splice(index, 1);
        };

        $scope.onFileSelect = function($files) {
            if (!is_img_qu) {
                return
            }
            var offsetx = $scope.selectFiles.length;
            for (var i = 0; i < $files.length; i++) {
                $scope.selectFiles[i + offsetx] = {
                    file: $files[i]
                };
                start(i + offsetx);
            }
        };
        /* 七牛图片上传结束 */

    }


})();